package com.list;

import com.domain.Student;

import java.util.ArrayList;
/*
    集合元素筛选：
    需求：定义一个方法，方法接收一个集合对象（泛型为Student），
    方法内部将年龄低于18的学生对象找出并存入新集合对象，方法返回新集合。
*/
public class ArrayListDemo_08 {
    public static void main(String[] args) {
        //定义一个集合list用于接收学生对象
        ArrayList<Student> list = new ArrayList<>();
        //创建5个学生对象stu
        Student stu1 = new Student("张三",15);
        Student stu2 = new Student("李四",18);
        Student stu3 = new Student("王五",17);
        Student stu4 = new Student("赵六",19);
        Student stu5 = new Student("周七",18);
        //将学生对象stu存入集合list
        list.add(stu1);
        list.add(stu2);
        list.add(stu3);
        list.add(stu4);
        list.add(stu5);
        System.out.println("原学生信息如下：");
        //System.out.println(list);
        // 该方法输出的内容为集合元素的地址，要使用fori遍历数组通过getXxx方法得到需要的信息
        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);
            System.out.println(stu.getName() + "  " + stu.getAge());
        }
        System.out.println("---------------");

        System.out.println("其中小于18岁的学生信息如下：");
        //System.out.println(getNewList(list));
        // 该方法输出的内容为集合元素的地址，要使用fori遍历数组通过getXxx方法得到需要的信息
        ArrayList<Student> newList = getNewList(list);
        for (int i = 0; i < newList.size(); i++) {
            Student stu = newList.get(i);
            System.out.println(stu.getName() + "  " + stu.getAge());
        }
    }
    //定义方法，方法的形参为ArrayList<Student> list
    public static ArrayList<Student> getNewList (ArrayList<Student> list) {
        //创建一个新的集合newList，用于存储筛选出的学生对象
        ArrayList<Student> newList = new ArrayList<>();
        //遍历集合，获取每一个学生对象
        for (int i = 0; i < list.size(); i++) {
            //将原集合list中的每一个学生对象stu取出
            Student stu = list.get(i);
            //获取学生对象的年龄age
            int age = stu.getAge();
            //通过条件判断筛选出小于年龄18岁的学生，并将该学生对象存入新集合newList中
            if (age < 18) {
                newList.add(stu);
            }
        }
        return newList;
    }
}
